/**
 * 680. 验证回文字符串II
 * @link https://leetcode-cn.com/problems/valid-palindrome-ii/description/
 * 给定一个非空字符串 s，最多删除一个字符，判断是否能成为回文字符串
 *
 * @param {string} s
 * @return {boolean}
 */
var validPalindrome = function (s) {
    for (let i = 0, j = s.length - 1; i < j; i++, j--) {
        if (s.charAt(i) !== s.charAt(j)) {
            return isPalindrome(s, i + 1, j) || isPalindrome(s, i, j - 1);
        }
    }

    return true;
};

/**
 *
 * @param {string} s
 * @param {number} i
 * @param {number} j
 */
function isPalindrome(s, i, j) {
    while (i <= j) {
        if (s.charAt(i++) !== s.charAt(j--)) return false;
    }

    return true;
}
